数据库

SQL Server AlwaysOn 是支持高可用性/灾难恢复场景的首选 SQL Server 技术,并且User Workspace Manager10.x 服务器为支持该技术已进行优化。

SQL 镜像适用于正在向总是在线的技术转型的User Workspace Manager10.1 FR1+ 客户。

SQL 总是在线

关于配置 SQL Server AlwaysOn 可用组的指南可以在这里找到:

关于 SQL Server 高可用性和灾难恢复的白皮书可以在这里找到:

如果您已经使用多子网故障转移可用性组配置了 SQL AlwaysOn,那么您必须在数据库连接字符串中为相关侦听器配置 MultiSubnetFailover 值。这可以使用服务器配置门户或 Powershell cmdlet 来完成。

有关配置数据库连接字符串的更多信息,请参阅服务器配置门户脚本撰写指南中的设置新的服务器和数据库

SQL 镜像

SQL 数据库镜像策略可通过在镜像 SQL 实例中保留数据库的实时副本确保获得数据恢复能力。如果出现故障转移,可以利用此待机数据库立即恢复服务。

原始服务器被称为主体,待机服务器被称为镜像。数据会在两个服务器之间自动进行同步,以便在需要时镜像完全为最新的。

如果设置符合 Microsoft 最佳实践,则 SQL 镜像受到的支持IvantiUser Workspace Manager

进行自动故障转移需要有见证服务器。在没有见证服务器的情况下,需要进行手动转换。
SQL 镜像在 SQL Server 2012 和 2014 上受支持,但是在 SQL Express Edition 上不受支持。

将 SQL 镜像与User Workspace Manager服务器一起配套使用

User Workspace Manager 服务器允许用户向数据库连接字符串中添加额外的参数。这可用于添加 Failover Partner 参数,以便在镜像配置中,User Workspace Manager 服务器可在主体出现故障或被切换时自动切换。

进行自动故障转移要求有见证服务器以及镜像对。

设置 SQL 镜像与 User Workspace Manager 涉及以下步骤:

初始安装管理 User Workspace Manager 服务器

User Workspace Manager 服务器应初始配置为指向主体数据库。用于安装数据库的服务器配置门户 (SCP) 可设置配置文件,以包含主体数据库的详细信息。

当原始主体作为镜像时,如果 SCP 在安装后运行,那么它将无法连接到数据库,因为 SCP 无法识别故障转移配置。

将出现连接错误,导致出现数据库差异。如果您正在切换数据库,则必须手动编辑 web.config 以删除故障转移合作伙伴。

要确保服务可访问镜像对的两个实例:

  1. 服务帐户必须使用 Windows 身份验证
  2. 必须使用域用户。

有关 SCP 的更多信息,请参阅 服务器配置门户帮助

准备主体和镜像数据库

  1. 在托管主体数据库的服务器上运行 SQL Server Management Studio。
  2. 右键单击“对象管理器”中的管理服务器数据库,并选择属性
  3. 在“数据库属性”对话框中,选择选项页面。
  4. 从“恢复模式”下拉列表中选择完全
  5. 单击确定
  6. 将恢复模式设置为完全后,就会备份数据库和事务日志。
  7. 通过完全恢复备份以及事务日志,在镜像数据库上创建镜像数据库。 确保每次恢复时均选中了“恢复数据库”对话框中的使用非复原恢复选项。

有关恢复数据库的更多信息,请参阅 SQL Server Management Studio 联机帮助或 SQL Server 文档。

数据库镜像设置

建议每个 SQL Server 服务均按域帐户运行,因为每个数据库均必须能够登录其他 SQL Server 的服务。

  1. 在托管主体数据库的服务器上运行 SQL Server Management Studio。
  2. 右键单击“对象管理器”中的数据库,并选择任务 > 镜像
  3. 单击配置安全性以访问“配置数据库镜像安全性向导”。
    该向导设置主体和镜像服务器的实例。

有关如何设置服务器镜像的更多信息,请参阅 SQL Server Management Studio 联机帮助或 SQL Server 文档

管理服务器设置

设置镜像对后,您需要配置管理服务器以使其能够在必要时使用故障转移合作伙伴,这通过以下 PowerShell 命令来实现:

Import-ApsInstanceModule -ProductName "Management Server" -IsDefault

$pw ="Password"| ConvertTo-SecureString -AsPlainText -force

$sc = New-Object System.Management.Automation.PSCredential ("Domain\Username",$pw)

Set-ApsServerDatabase -DatabaseConnection NameOfConnection -ServiceCredential $sc -ConnectionString "Failover Partner=NameOfFailOverServer"

如果默认 SQL 实例 (MSSQLServer) 中存在数据库,则不要在 web.config.file 中指定“Server\MSSQLServer”,因为镜像将不起作用。要使用默认 SQL 实例,仅指定服务器名称。
例如,如果您的服务器 "SVR_2k8_01" 在默认实例中已存在,则指定 "SVR_2k8_01",而不是 "SVR_2k8_01\MSSQLServer"。

当故障转移合作伙伴 Powershell 命令成功运行时,获得更新的文件为 databaseconnections.xml。

当 PoSh 命令运行时,会添加故障转移连接:

服务器配置门户将如下所示,这正是所预期的,因为不存在有关故障转移连接的配置帐户详细信息:

个性化服务器设置

设置镜像不会将服务器登录名转移至镜像中,因此必须将服务帐户登录名添加到镜像中。

  1. 在 SQL Server Management Studio 的“对象管理器”中,右键单击安全性 > 登录名节点,并选择新建登录名
  2. 输入服务帐户登录名的详细信息,并单击确定

仅需要添加用户,因为用户的 SID 在数据库中已设置好;当出现故障转移时,该用户将具有访问权限。

更新 web.config 文件
  1. 在个性化服务器上打开 web.config 文件。 此文件通常位于以下目录中:
    C:\Program Files\AppSense\Environment Manager\Personalization Server\PS
  2. 如下面示例所突出显示,添加故障转移合作伙伴。

如果默认 SQL 实例 (MSSQLServer) 中存在数据库,则不要在 web.config.file 中指定“Server\MSSQLServer”,因为镜像将不起作用。要使用默认 SQL 实例,仅指定服务器名称。
例如,如果您的服务器 "SVR_2k8_01" 在默认实例中已存在,则指定 "SVR_2k8_01",而不是 "SVR_2k8_01\MSSQLServer"。

更新 BackgroundService.exe.config
  1. 在个性化服务器上打开 Bin 文件夹中的 BackgroundService.exe.config 文件。此文件通常位于以下目录中:
    C:\Program Files\AppSense\Environment Manager\Personalization Server\BackgroundService
  2. 如下面示例所突出显示更新该文件:

相关主题